home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 10 / The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso / PC_SIGCD / 20 / 3 / DISK2032.ZIP / MPMENU.H < prev    next >
C/C++ Source or Header  |  1990-09-01  |  3KB  |  78 lines

  1. /*--------------------------------------------------------------
  2.  *  File:           MPMENU.H
  3.  *  Description:    
  4.  *
  5.  *  Developed for the MPLUS Graphic Interface Library
  6.  *  Copyright (c) 1989, 1990 by Michael Yam
  7.  *-------------------------------------------------------------*/
  8.  
  9. #if !defined(_MPTYPES)
  10. typedef short word;
  11. #define _MPTYPES                /* include only once */
  12. #endif
  13.  
  14. typedef struct _menubar MENUBAR;
  15.  
  16. struct RECTANGLE
  17. {
  18.     word x1, y1, x2, y2;
  19. };
  20.  
  21. struct MENU_INFO
  22. {
  23.     int exitkey;
  24.     int (*exitfun)();
  25.     word fg0, bg0, keycolor0, greyout0;     /* attr for menu bar */
  26.     word border;
  27.     word fg, bg, keycolor, greyout;         /* attr for pull-down menus */
  28. };
  29.  
  30. struct MENU_ITEM
  31. {
  32.     char *title;
  33.     int (*function)();
  34.     struct MENU_ITEM *menu_item;
  35.     unsigned submenu: 1;
  36.     unsigned greyout: 1;
  37.  
  38.     /* Remaining 6 bits reserved for future use. */
  39. };
  40.  
  41. struct _menubar
  42. {
  43.     word r1, c1, c2;
  44.     word x1, y1, x2, y2;
  45.     char *image;
  46. };
  47.  
  48. /*--------------------------------------------------------------
  49.  *  Function Prototypes
  50.  *--------------------------------------------------------------*/
  51. extern  int mb_open(word r1,word c1,word c2,struct MENU_INFO *menu_info,struct MENU_ITEM *menu_item);
  52. extern  int mb_close(void);
  53. extern  int (cdecl *mb_run(void))();
  54.  
  55. extern  int (cdecl *mb_kbinput(struct _menubar *mbptr,int index,struct MENU_INFO *menu_info,struct MENU_ITEM *menu_item))();
  56. extern  int (cdecl *mb_msinput(struct _menubar *mbptr,int index,struct MENU_INFO *menu_info,struct MENU_ITEM *menu_item))();
  57. extern  int mb_altkey(struct MENU_ITEM *menu_item,int ch);
  58. extern  int mb_intitle(struct _menubar *mbptr,struct MENU_ITEM *menu_item,word x0,word y0);
  59. extern  word mb_highlite(struct _menubar *mbptr,struct MENU_ITEM *menu_item,int index);
  60. extern  void mb_stdcolors(struct MENU_INFO *menu_info);
  61.  
  62. extern  struct _gwdw *mw_open(word r1,word c1,struct MENU_INFO *menu_info,struct MENU_ITEM *menu_item);
  63. extern  int mw_close(struct _gwdw *gwptr);
  64. extern  word mw_getcols(struct MENU_ITEM *menu_item);
  65. extern  word mw_getrows(struct MENU_ITEM *menu_item);
  66. extern  void mw_showtitles(struct MENU_INFO *menu_info,struct MENU_ITEM *menu_item);
  67. extern  void mw_highlite(struct MENU_ITEM *menu_item,word index);
  68. extern  word mw_intitle(struct MENU_ITEM *menu_item,word x0,word y0);
  69. extern  int mw_nexttitle(struct MENU_ITEM *menu_item,int activetitle);
  70. extern  int mw_prevtitle(struct MENU_ITEM *menu_item,int activetitle);
  71. extern  int (cdecl *mw_kbinput(struct MENU_INFO *menu_info,struct MENU_ITEM *menu_item))();
  72. extern  int (cdecl *mw_msinput(struct _menubar *mbptr,struct MENU_INFO *menu_info,struct MENU_ITEM *menu_item))();
  73. extern  struct _gwdw *mw_opensubmenu(struct MENU_INFO *menu_info,struct MENU_ITEM *menu_item,int activetitle);
  74.  
  75. /*--------------------------------------------------------------*
  76.  *                      End of MPMENU.H                         *
  77.  *--------------------------------------------------------------*/
  78.